import logging

import pytest

from resource.pom.settings import Settings
from utils.manager import Direction


# @pytest.fixture(autouse=True)
# def set_language(device):
#     logging.info('方法前置----设置系统地区为中国----')
#     device.set_param('persist.global.locale', 'zh-Hans-CN')
#     yield
#     logging.info('方法后置----恢复系统地区为中国')
#     device.set_param('persist.global.locale', 'zh-Hans-CN')


class Test:
    app = Settings

    @pytest.mark.parametrize('setup_teardown', [app.bundle_name], indirect=True)
    def test(self, setup_teardown, device, factory_reset):
        logging.info('步骤1.进入桌面，点击设置-系统-语言设置-语言与地区-地区')
        device.start_ability(self.app.bundle_name, self.app.ability_name)
        device.dirc_fling(Direction.Down)
        device.click(*self.app.system_item)
        device.refresh_layout()
        device.click_element(device.get_element_by_text('语言设置'))
        device.refresh_layout()
        device.click_element(device.get_element_by_text('语言与地区'))
        device.refresh_layout()
        device.click_element(device.get_element_by_text('当前地区'))
        logging.info('预期结果1.可正常进入语言设置')
        device.refresh_layout()
        device.assert_text_exist('选择地区')
        device.assert_text_exist('当前地区')
        device.assert_text_exist('所有地区')

        logging.info('步骤2.点击修改当前地区')
        device.click(360, 640)
        logging.info('预期结果2.选择修改当前地区后返回上一级显示正常')
        device.refresh_layout()
        device.assert_text_exist('语言与地区')
        device.assert_text_exist('地区')
        device.assert_text_exist('当前地区')
        device.assert_text_exist('中国', expect=False), '地区修改失败'
